<?php

namespace App\Http\Controllers\Common;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class UploaderController extends Controller
{
    /**
     * 完成图片上传功能
     */
    public function upload(Request $request){
        //想要使用hdjs完成图片上传,需要找到当前项目所使用的php版本,点击设置,找到安装扩展,查看fileinfo扩展是否被安装,如果没安装,点击后面的安装即可
        //接收上传的图片数据
        $file = $request->file;
        //验证上传的图片是否有效,如果有效,才进行后面的上传处理
        if ($file->isValid()){
           //如果上传图片有效,就应该利用框架的方法将图片上传到服务器上
            //第一个参数是相对于图片上传的根目录来说的目录名称,当然,你也可以用多层目录的形式来定义,这个参数不能定义被上传文件的文件名,因为系统会自动生成一个唯一的文件名
            //第二个参数是选填项,如果你不给第二个参数,上传图片方法会去config/filesystems.php里面找default,然后找到默认的图片上传根目录,如果你传递了一个值,就会去配置项中找到disks里面对应值所指向的默认目录
            $path = $file->store(date('ymd',time()),'c92');
            //上传图片成功之后,按照hdjs所需要的返回方式将对应数据返回给前台就OK
            //格式一定按照这样来,数组中必须有valid值,也必须有message值,valid值是用来前台自动判断是否上传成功的,message值会被处理成为图片路径相关参数
            return ['valid' => 1, 'message' => '/uploadImage/'.$path];
        }
        return ['valid' => 0, 'message' => '图片上传失败!!!'];
    }

    public function fileLists(){
        $files = glob('uploadImage/*/*');
        foreach ($files as $f) {
            $data[] = ['url' => "/".$f, 'path' => '/'.$f];
        }
//返回数据 data为文件列表 page 为分页数据，可以使用 houdunwang/page 组件生成
        return ['valid'=>1,'data' => $data,'page'=>[]];
    }
}
